package com.ps.helpdesk.model;

import java.io.Serializable;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Tarefa implements Serializable {
	@EmbeddedId
	private Tarefa.PK pk;

	@ManyToOne
	@JoinColumn(name="IDUSUARIO")
	private Usuario idusuario;

	@ManyToOne
	@JoinColumn(name="IDOCORRENCIA")
	private Ocorrencia idocorrencia;

	private static final long serialVersionUID = 1L;

	public Tarefa() {
		super();
	}

	public Tarefa.PK getPk() {
		return this.pk;
	}

	public void setPk(Tarefa.PK pk) {
		this.pk = pk;
	}

	public Usuario getIdusuario() {
		return this.idusuario;
	}

	public void setIdusuario(Usuario idusuario) {
		this.idusuario = idusuario;
	}

	public Ocorrencia getIdocorrencia() {
		return this.idocorrencia;
	}

	public void setIdocorrencia(Ocorrencia idocorrencia) {
		this.idocorrencia = idocorrencia;
	}


	@Embeddable
	public static class PK implements Serializable {
		private int idtarefa;
		private int idocorrencia2;
		private static final long serialVersionUID = 1L;

		public PK() {
			super();
		}

		public int getIdtarefa() {
			return this.idtarefa;
		}

		public void setIdtarefa(int idtarefa) {
			this.idtarefa = idtarefa;
		}

		public int getIdocorrencia2() {
			return this.idocorrencia2;
		}

		public void setIdocorrencia2(int idocorrencia2) {
			this.idocorrencia2 = idocorrencia2;
		}

		@Override
		public boolean equals(Object o) {
			if (o == this) {
				return true;
			}
			if ( ! (o instanceof PK)) {
				return false;
			}
			PK other = (PK) o;
			return (this.idtarefa == other.idtarefa)
				&& (this.idocorrencia2 == other.idocorrencia2);
		}

		@Override
		public int hashCode() {
			return this.idtarefa
				^ this.idocorrencia2;
		}

	}

}
